#! /bin/sh

if [ ! $# -eq 1 ]; then
    echo "Sintaxe: importa_fotos.sh <diretorio-onde-estao-as-fotos-a-importar>"
    echo "As fotos serao importadas para uma árvore de diretório cuja raiz eh o diretorio corrente"
    exit 
fi

dir="$1"


ano_mes_dia ( )
{
    e0=`exif "$1" | grep -i "Data e Hora"` 2> /dev/null
    if [ $? -eq 0 ]; then 
        e=`echo "$e0" | cut -d '|' -f2`
        data=`echo "$e" | cut -d ' ' -f 1`; 
        ano=`echo "$data" | cut -d ':' -f 1`; 
        mes=`echo "$data" | cut -d ':' -f 2`; 
        dia=`echo "$data" | cut -d ':' -f 3`;
        n="$ano-$mes-$dia";
    else
        n="0000-00-00"
    fi

    echo "$n"
}

obtem_ultima_foto ( ) 
{
    ultimo_arq=""
    for f in `ls -r "$1/$2/$3"`; do
        ultimo_arq="$f";
        break;
    done

    if [ -z "$ultimo_arq" ]; then
        numero=0
    else
        t=`echo "$ultimo_arq" | cut -d '-' -f 4`
        numero=`echo "$t" | cut -d '.' -f1`
    fi               

    echo "$numero"
}


formata_num ( )
{
    if [ $1 -le 9 ]; then
        numero="000$1"
    else
        if [ $1 -le 99 ]; then
            numero="00$1"
        else
            if [ $1 -le 999 ]; then
                numero="0$1"
            else
                numero=$1
            fi
        fi
    fi

    echo "$numero"
}


#for foto in `find "$dir" \( -name "*.jpg" -o -name "*.JPG" \) `; do
find "$dir" \( -name "*.jpg" -o -name "*.JPG" -o -name "*.jpeg" -o -name "*.JPEG" \) | sort | while read foto ; do

    ano_mes_dia=`ano_mes_dia "$foto"`
    ano=`echo "$ano_mes_dia" | cut -d'-' -f 1`
    mes=`echo "$ano_mes_dia" | cut -d'-' -f 2`
    dia=`echo "$ano_mes_dia" | cut -d'-' -f 3`

    if [ ! -d "$ano/$mes/$dia" ]; then 
        mkdir -p "$ano/$mes/$dia"
    fi

    num_ultima_foto=`obtem_ultima_foto $ano $mes $dia`

    num_ultima_foto=`echo $num_ultima_foto + 1 | bc`

    num_ultima_foto=`formata_num $num_ultima_foto`

    nome_completo="$ano_mes_dia-$num_ultima_foto.jpg"

    echo "$foto -> $ano/$mes/$dia/$nome_completo"

    cp "$foto" "$ano/$mes/$dia/$nome_completo" 2> /dev/null

    if [ $? -ne 0 ]; then
        echo "ERRO em '$foto'"
    else
#        chown -R rodrigo:rodrigo "$ano/$mes/$dia/$nome_completo"

        chmod 664 "$ano/$mes/$dia/$nome_completo"
    fi
    

    
done